#ifndef Character_H_INCLUDED_36266728
#define Character_H_INCLUDED_36266728
//-----------------------------------------------------------------------------
// Copyright (c) 2011 David Waby
// Initially created on 01/11/2011
//-----------------------------------------------------------------------------

#include "CharacterSheet.h"
#include "Inventory.h"
class Map;
       
//-----------------------------------------------------------------------------
class Character
{
public:
									Character();
									~Character();

	void							Init();

	inline void						SetMap(Map * i_map);

	inline void						SetPosition(Point2 const * i_position);
	inline Point2 const *			GetPosition() const;

	bool							Move(Direction::Enum const i_direction);
	void							Use();

protected:

private:

	bool							CanMoveTo(Point2 const * i_position) const;
	void							MoveTo(Point2 const * i_position);

	Point2							m_position;
	Map *							m_map;
	CharacterSheet					m_characterSheet;
	Inventory						m_inventory;

									Character(const Character &rhs);
									Character& operator = (const Character &rhs);
};

#include "Character.inl"

//-----------------------------------------------------------------------------
#endif // Character_H_INCLUDED_36266728
